// 约束泛型只能是数字或是字符串
class Test<T extends number | string> {
  // 接收的参数也只能是指定的泛型
  constructor(private args: T[]){}

  // 返回指定的索引
  getVal(index: number): T {
    return this.args[index]
  }
}

const test1 = new Test<number>([1, 2]) // ok
